#pragma once

#include <iostream>
#include<string>
#include<vector>
#include <unistd.h>
#include <fcntl.h>

class Util
{
public:
    // 设置文件为非阻塞读
    static bool SetNoBlock(int fd)
    {
        // 获取该文件描述符本来的设置位图
        int fl = fcntl(fd, F_GETFL);
        if (fl < 0)
            return false;
        fcntl(fd, F_SETFL, fl | O_NONBLOCK);
        return true;
    }
    //字符串切割：根据sep分隔符分割字符串
    static bool StringSplit(const std::string &str,const std::string &sep,std::vector<std::string>*result)
    {
        size_t start=0;
        while(start<str.size())
        {
            auto pos=str.find(sep,start);
            if(pos==std::string::npos)
                break;
            result->push_back(str.substr(start,pos-start));
            start=pos+sep.size();
        }
        //处理最后一个字符
        if(start<str.size()) result->push_back(str.substr(start));

        return true;
    }
    //字符串转整型
    static int toInt(std::string&str)
    {
        return atoi(str.c_str());
    }
};